package com.niit.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.niit.entity.Student;

/**
 ** StudentMapper接口，声明对Student表的操作有哪些
 *
 * @author hanliang
 */
public interface StudentMapper {

	// 1.1 根据学号查询单个学生
    Student getOneById(String id);
	// 1.2. 查询指定班级的学生数量
    int getBatchSize(String batchName);
	// 2. 根据学号查询单个学生
    Student getOne(String id);

	// 3. 根据性别查询学生列表1

	// 4. 根据性别查询学生列表2

	// 5. 根据班级名称查询学生列表

	// 6. 模糊查询：根据姓名列，查询包含指定关键字的学生的列表，如姓名包含“宇”这个关键字的学生

	// 定义sql语句的多个参数-方式1-使用@Param注解指定每个参数的名称
	// 7. 根据班级名称和性别查询学生列表1
	// 如果希望自定义查询参数的名称，可以使用@Param注解
    List<Student> getStudentListByBatchAndGender1(
            @Param("batchName") String batchName,
            @Param("gender") String gender);
	// 定义sql语句的多个参数-方式2-使用一个Map集合封装多个参数
	// 8. 根据班级名称和性别查询学生列表2
    List<Student> getStudentListByBatchAndGender2(
            Map<String,Object> map);
	// 9. 模糊查询：根据任意指定的列，查询包含指定关键字的学生列表，如可以根据学号、姓名、班级等任意一列进行关键字查询
    List<Student> getStudentListByKeyword(
            @Param("colName") String colName,
            @Param("kw") String keyword);
}
